package com.thb.pay.system.service;

import com.thb.pay.api.sys.vo.req.SysRolePageReq;
import com.thb.pay.api.sys.vo.req.SysRoleReq;
import com.thb.pay.api.sys.vo.resp.SysRoleVo;
import com.thb.pay.api.sys.vo.resp.SysUserRoleVo;
import com.thb.pay.core.utils.PageResult;
import com.thb.pay.db.service.IBaseService;
import com.thb.pay.system.entity.SysRole;

import java.util.List;

/**
 * <p>
 * 系统-角色表 服务类
 * </p>
 *
 * @author lucky
 * @since 2019-07-21
 */
public interface SysRoleService extends IBaseService<SysRole> {

    /**
     * @param pageReq
     * @return
     * @方法名称
     * @功能描述 分页角色列表信息
     * @作者: lucky
     * @创建时间: 14:13 2019/9/29
     **/
    PageResult<SysRoleVo> findPage(SysRolePageReq pageReq);

    /**
     * @param id
     * @return
     * @方法名称
     * @功能描述 获取角色明细
     * @作者: lucky
     * @创建时间: 13:58 2019/9/29
     **/
    SysRoleVo getById(Long id);

    /**
     * @param sysRoleReq
     * @return
     * @方法名称
     * @功能描述 添加角色信息
     * @作者: lucky
     * @创建时间: 13:58 2019/9/29
     **/
    void add(SysRoleReq sysRoleReq);

    /**
     * @param sysRoleReq
     * @return
     * @方法名称
     * @功能描述 修改角色信息
     * @作者: lucky
     * @创建时间: 13:58 2019/9/29
     **/
    void update(SysRoleReq sysRoleReq);

    /**
     * @param id
     * @return
     * @方法名称
     * @功能描述 删除角色信息
     * @作者: lucky
     * @创建时间: 13:58 2019/9/29
     **/
    void deleteById(Long id);

    /**
     * @param ids
     * @return
     * @方法名称
     * @功能描述 批量删除角色信息
     * @作者: lucky
     * @创建时间: 13:58 2019/9/29
     **/
    void deleteBatchIds(List<Long> ids);

    /**
     * @return
     * @方法名称
     * @功能描述 查询所有的角色列表
     * @作者: lucky
     * @创建时间: 13:58 2019/9/29
     **/
    List<SysRoleVo> findAllList();

    /**
     * @param userId
     * @return
     * @方法名称
     * @功能描述 获取用户所有的角色ids
     * @作者: lucky
     * @创建时间: 14:24 2019/9/29
     **/
    List<SysUserRoleVo> findUserRoleListByUserId(Long userId);

    /**
     * @param roleId
     * @param resourceIds
     * @return
     * @方法名称
     * @功能描述 保存角色-资源 关系
     * @作者: lucky
     * @创建时间: 14:24 2019/9/29
     **/
    void addResourceListByRoleId(Long roleId, List<Long> resourceIds);


}
